home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Development Kits / MPW etc / MPW-PR / Interfaces&Libraries / Interfaces / CIncludes / setjmp.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-12  |  1.3 KB  |  63 lines  |  [TEXT/MPS ]

  1. /*
  2.    SetJmp.h
  3.  
  4.    Copyright Apple Computer, Inc.    1986-1990, 1993-1995, 1998
  5.    All rights reserved.
  6.  */
  7.  
  8.  
  9. #ifndef __SETJMP__
  10. #define __SETJMP__
  11.  
  12. #ifdef __CFM68K__
  13.     /* We MUST use the new, larger jmp_buf for CFM-68K */
  14.     #undef OLD_JMPBUF
  15. #endif
  16.  
  17. #if defined (powerc)
  18. #if defined (__VEC__)
  19.     typedef long *jmp_buf[116]; /*  AltiVec: LR,CR,SP,TOC,VRSAVE,R13-R31,FP14-FP31,FPSCR,RESVD,RESVD,VR20-VR31,VSCR  */
  20. #else  // !__VEC__
  21.     typedef long *jmp_buf[64];  /*  PowerPC: LR,CR,SP,TOC,RESVD,R13-R31,FP14-FP31,FPSCR,RESVD,RESVD  */
  22. #endif // !__VEC__
  23. #elif defined (OLD_JMPBUF)
  24.     typedef long *jmp_buf[12];    /*    old 68K: D2-D7,PC,A2-A4,A6,SP  */
  25. #else
  26.     typedef long *jmp_buf[16];    /*    new 68K: D2-D7,PC,A2-A4,A6,SP,FLAGS,A5,RESVD,RESVD  */
  27. #endif
  28.  
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32.  
  33. #if defined (__powerc) || defined (powerc) || defined (__CFM68K__)
  34.     #pragma import on
  35. #endif
  36.  
  37. #if defined(__VEC__)
  38.  
  39.     extern int __vec_setjmp(jmp_buf env);
  40.     extern void __vec_longjmp(jmp_buf env, int val);
  41.     
  42.     #define setjmp(env) __vec_setjmp(env)
  43.     #define longjmp(env, val) __vec_longjmp(env, val)
  44.  
  45. #else
  46.  
  47.     extern int __setjmp(jmp_buf env);
  48.     
  49.     #define setjmp(env) __setjmp(env)
  50.     extern void longjmp(jmp_buf env, int val);
  51.  
  52. #endif
  53.  
  54. #if defined (__powerc) || defined (powerc) || defined (__CFM68K__)
  55.     #pragma import off
  56. #endif
  57.  
  58. #ifdef __cplusplus
  59. }
  60. #endif
  61.  
  62. #endif
  63.